Model ক্লাসে প্রপার্টি এবং মেথড সংজ্ঞায়িত করা হল MVVM বা MVP প্যাটার্নের মধ্যে গুরুত্বপূর্ণ অংশ। এটি অ্যাপ্লিকেশনের ডেটা এবং বিজনেস লজিক পরিচালনার জন্য ব্যবহৃত হয়। Model ক্লাসের প্রপার্টি সাধারণত ডেটার কাঠামো (structure) এবং তার মান (value) ধারণ করে, এবং মেথডগুলি ডেটার সাথে কাজ করার জন্য নির্দিষ্ট কার্যক্রম সম্পাদন করে।
প্রপার্টি ক্লাসের ভেরিয়েবলগুলোর জন্য getter এবং setter মেথড প্রদান করে। এগুলি ডেটার অ্যাক্সেস এবং ম্যানিপুলেশন করার উপায় দেয়।
ধরা যাক, আমরা একটি Product
নামের ক্লাস তৈরি করব, যেখানে প্রপার্টি হবে Name
, Price
, এবং Quantity
।
public class Product
{
// প্রপার্টি: Name
public string Name { get; set; }
// প্রপার্টি: Price
public decimal Price { get; set; }
// প্রপার্টি: Quantity
public int Quantity { get; set; }
}
এখানে, Name
, Price
, এবং Quantity
হল Product ক্লাসের প্রপার্টি। এগুলি দিয়ে ডেটার মান গ্রহণ এবং সেট করা হয়। প্রপার্টির মান পরিবর্তন বা অ্যাক্সেস করার জন্য getter এবং setter ব্যবহৃত হয়।
Model ক্লাসে মেথডগুলি ডেটা প্রসেসিং বা বিজনেস লজিক সম্পাদন করার জন্য ব্যবহৃত হয়। যেমন, কোন প্রোডাক্টের মোট মূল্য গণনা করা, ডেটাবেসে তথ্য সেভ বা আপডেট করা ইত্যাদি। মেথডগুলি প্রপার্টির মান ব্যবহার করে নির্দিষ্ট কাজগুলো সম্পাদন করে।
Price
এবং Quantity
এর গুণফল হবে।public class Product
{
public string Name { get; set; }
public decimal Price { get; set; }
public int Quantity { get; set; }
// মেথড: মোট মূল্য হিসাব করা
public decimal CalculateTotalPrice()
{
return Price * Quantity;
}
}
এখানে, CalculateTotalPrice
মেথড প্রোডাক্টের মোট মূল্য হিসাব করে এবং সেই মান রিটার্ন করে।
Quantity
0 এর বেশি কিনা।public bool IsInStock()
{
return Quantity > 0;
}
এই মেথডটি প্রোডাক্টের স্টক চেক করতে ব্যবহৃত হয় এবং স্টকে থাকলে true
রিটার্ন করবে।
CRUD অপারেশন (Create, Read, Update, Delete) করার জন্য মেথড তৈরি করা হয়। তবে, এখানে মেথডগুলোর উদাহরণ দেওয়া হলো যা ডেটা ম্যানিপুলেশন বা বিজনেস লজিকের অংশ:
public void UpdatePrice(decimal newPrice)
{
if (newPrice >= 0)
{
Price = newPrice;
}
else
{
throw new ArgumentException("Price cannot be negative");
}
}
public void ApplyDiscount(decimal discountPercentage)
{
if (discountPercentage > 0 && discountPercentage <= 100)
{
Price -= Price * discountPercentage / 100;
}
else
{
throw new ArgumentException("Invalid discount percentage");
}
}
মডেল ক্লাসের মধ্যে প্রপার্টি বা মেথডের মান যাচাই করার জন্য validation যুক্ত করা হয়, যা ডেটার সঠিকতা নিশ্চিত করে।
public class Product
{
private decimal _price;
public string Name { get; set; }
// প্রপার্টি: Price with validation
public decimal Price
{
get { return _price; }
set
{
if (value < 0)
throw new ArgumentException("Price cannot be negative");
_price = value;
}
}
public int Quantity { get; set; }
// মেথড: CalculateTotalPrice
public decimal CalculateTotalPrice()
{
return Price * Quantity;
}
}
এখানে, Price
প্রপার্টিতে যদি একটি নেগেটিভ মান দেওয়া হয়, তবে ArgumentException
থ্রো করা হবে, যা ডেটার সঠিকতা নিশ্চিত করে।
Model ক্লাসে প্রপার্টি এবং মেথড সংজ্ঞায়িত করা অ্যাপ্লিকেশনের ডেটা এবং বিজনেস লজিকের ম্যানেজমেন্টের জন্য অত্যন্ত গুরুত্বপূর্ণ। প্রপার্টিগুলি ডেটার অ্যাক্সেস এবং সংরক্ষণ করে, এবং মেথডগুলি সেই ডেটার সাথে কাজ করার জন্য লজিক প্রয়োগ করে। এই প্রক্রিয়াটি অ্যাপ্লিকেশনের কার্যকারিতা এবং ডেটা সঠিকতার উন্নতি ঘটাতে সাহায্য করে।
common.read_more